package com.bjsxt.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bjsxt.domain.TradeArea;
import com.bjsxt.model.TradeAreaMarketVo;

import java.util.List;

public interface TradeAreaService extends IService<TradeArea> {

    /**
     * 分页查询交易区域数据
     *
     * @param page   分页对象<TradeArea>
     * @param name   交易区名称
     * @param status 状态
     * @return 查询出的交易区域分页数据
     */
    Page<TradeArea> pageByNameAndStatus(Page<TradeArea> page, String name, Byte status);

    /**
     * 根据状态查询所有的交易区域
     *
     * @param status 状态：0: 无效 1:有效
     * @return 交易区域集合
     */
    List<TradeArea> listByStatus(Byte status);

    /**
     * 获取交易区域和区域下的市场
     *
     * @return 交易区域和区域下的市场集合数据
     */
    List<TradeAreaMarketVo> listTradeAreaMarkets();

    /**
     * 根据用户 id 查询用户的收藏市场列表
     *
     * @param userId 用户 id
     * @return 交易区域和区域下的市场集合数据
     */
    List<TradeAreaMarketVo> getFavoriteByUserId(Long userId);
}
